1. Introducción a AWS Lambda
AWS Lambda es el servicio serverless de AWS que permite ejecutar código sin administrar servidores.
En lugar de crear una máquina EC2 completa, simplemente subimos una función y AWS se encarga automáticamente de:
- Infraestructura
- Escalado
- Disponibilidad
- Ejecución
- Monitorización básica
Idea principal
Evento
↓
Lambda se activa
↓
Ejecuta código
↓
Finaliza
La función solo existe mientras se ejecuta.
Mini-test
¿Qué permite AWS Lambda?
2. Qué significa Serverless
Serverless NO significa que no existan servidores.
Significa que los servidores son completamente administrados por AWS y nosotros no tenemos que preocuparnos por ellos.
Qué gestiona AWS
- Sistema operativo
- Parches
- Escalabilidad
- Infraestructura
- Disponibilidad
Qué hace el desarrollador
- Escribir código
- Subir funciones
- Definir eventos
Mini-test
¿Qué significa realmente serverless?
3. EC2 vs Lambda
| Amazon EC2 | AWS Lambda |
|---|---|
| Gestionas servidores | AWS gestiona infraestructura |
| Pago continuo | Pago por ejecución |
| Escalado manual | Escalado automático |
| Aplicaciones largas | Eventos rápidos |
Cuándo usar EC2
- Aplicaciones permanentes
- Control total sistema operativo
- Procesos largos
Cuándo usar Lambda
- Automatización
- Microservicios
- Procesamiento por eventos
- Escalado automático
Mini-test
¿Qué servicio escala automáticamente?
4. Cómo funciona Lambda
Lambda trabaja completamente mediante eventos.
Flujo general
Se produce un evento
↓
AWS detecta el evento
↓
Se ejecuta Lambda
↓
Lambda ejecuta código
↓
Devuelve resultado
Características importantes
- Ejecución temporal
- Escalado automático
- Alta disponibilidad
- Sin administración servidor
Tiempo de vida
Una función Lambda no permanece activa permanentemente como EC2.
Mini-test
¿Qué activa normalmente Lambda?
5. Fuentes de eventos Lambda
Muchos servicios AWS pueden activar funciones Lambda automáticamente.
Eventos más utilizados
- Amazon S3
- API Gateway
- CloudWatch
- SNS
- SQS
- DynamoDB
Ejemplo con S3
Usuario sube imagen
↓
S3 detecta evento
↓
Lambda procesa imagen
Ejemplo con API Gateway
Petición HTTP
↓
API Gateway
↓
Lambda ejecuta backend
Mini-test
¿Qué servicio puede activar Lambda al subir archivos?
6. Lenguajes soportados
Lambda soporta múltiples lenguajes de programación.
Lenguajes principales
- Python
- Node.js
- Java
- C#
- Go
- Ruby
Python
Es uno de los más utilizados por su simplicidad.
Ejemplo básico
def lambda_handler(event, context):
return {
'statusCode': 200,
'body': 'Hola Lambda'
}
Mini-test
¿Qué lenguaje es muy común en Lambda?
7. Roles IAM y permisos
Lambda necesita permisos para interactuar con otros servicios AWS.
Cómo obtiene permisos
Mediante roles IAM.
Ejemplo
Lambda
↓
Rol IAM
↓
Permisos EC2
Permisos típicos
- Leer buckets S3
- Iniciar EC2
- Detener EC2
- Escribir logs
Mini-test
¿Qué usa Lambda para permisos?
8. Amazon CloudWatch
CloudWatch monitoriza funciones Lambda automáticamente.
Qué registra
- Logs
- Errores
- Tiempo ejecución
- Invocaciones
- Uso memoria
Ejemplo Python
print("Lambda iniciada")
Ese texto aparecerá en CloudWatch Logs.
Ventaja
Permite depurar problemas rápidamente.
Mini-test
¿Qué servicio almacena logs Lambda?
9. Crear una función Lambda
Paso 1
Entrar al servicio AWS Lambda.
Paso 2
Seleccionar “Create Function”.
Paso 3
Author from scratch
Nombre: mi_lambda
Runtime: Python 3.x
Paso 4
Elegir rol IAM.
Paso 5
Escribir código y desplegar.
Paso 6
Crear evento de prueba.
Mini-test
¿Qué necesitamos para crear Lambda?
10. Ejemplo de código Lambda en Python
Lambda recibe dos parámetros:
- event → información del evento
- context → información ejecución
Ejemplo completo
import json
def lambda_handler(event, context):
nombre = event['nombre']
return {
'statusCode': 200,
'body': json.dumps(
f'Hola {nombre}'
)
}
Evento de prueba
{
"nombre": "Marcos"
}
Resultado
{
"statusCode": 200,
"body": "Hola Marcos"
}
Mini-test
¿Qué formato suelen usar los eventos?
11. Automatizar EC2 con Lambda
Uno de los usos más comunes es encender y apagar servidores automáticamente.
Objetivo
- Ahorrar dinero
- Automatizar horarios
Ejemplo
20:00
↓
CloudWatch Event
↓
Lambda
↓
Stop EC2
Código ejemplo
import boto3
ec2 = boto3.client('ec2')
def lambda_handler(event, context):
ec2.stop_instances(
InstanceIds=['i-123456']
)
Mini-test
¿Qué librería Python usa AWS?
12. API Gateway y Lambda
API Gateway permite exponer funciones Lambda mediante HTTP.
Arquitectura
Usuario
↓
API Gateway
↓
Lambda
↓
Respuesta JSON
Ventajas
- Crear APIs REST
- Backend serverless
- Escalabilidad automática
- Pago por uso
Casos típicos
- APIs móviles
- Aplicaciones SPA
- Microservicios
Mini-test
¿Qué servicio expone Lambda vía HTTP?
13. Límites y costes
Límites importantes
| Elemento | Límite |
|---|---|
| Tiempo ejecución | 15 minutos |
| Memoria máxima | 10 GB |
| Concurrentes | 1000 |
Modelo de precios
- Invocaciones
- Tiempo ejecución
- Memoria utilizada
Ventaja económica
Si la función no se ejecuta, normalmente no pagamos.
Mini-test
¿Cuál es el máximo tiempo de ejecución?
14. Arquitectura moderna Serverless
Ejemplo completo
Usuario
↓
CloudFront
↓
S3 (Frontend)
↓
API Gateway
↓
Lambda
↓
DynamoDB / RDS
Ventajas
- Escalabilidad automática
- Pago por uso
- Alta disponibilidad
- Poca administración
- Arquitectura moderna
Desventajas
- Cold Starts
- Tiempo máximo limitado
- Más complejidad distribuida
Mini-test
¿Qué ventaja principal tiene serverless?